Um filtro bastante utilizado para aguçar a imagem é denominado unsharp mask. Ele é capaz de realçar bordas calculando a diferença entre a imagem original e uma versão suavizada da imagem filtrada pela gaussiana. Para conseguir o realce de bordas, faça:
In [8]:
import numpy as np
Sv = np.array([[1,0,-1],[2,0,-2],[1,0,-1]])
print('Sv =\n',Sv)
Sh = np.array([[1,2,1],[0,0,0],[-1,-2,-1]])
print('Sh =\n',Sh)
A função MagSobel a ser implementada possui como parâmetro a imagem de entrada e deve seguir a seguinte equação:
$$MagSobel = \sqrt{f_h^2 + f_v^2}$$onde $f_h$ é a imagem de entrada convolvida com o operador de Sobel horizontal e $f_v$ é a imagem de entrada convolvida com o operador de Sobel vertical.
Existem alguns cuidados necessários:
Após implementar a função que retorna o ângulo da borda de Sobel:
Realize experimentos para demostrar as propriedades da convolução:
Crie um exemplo que demonstre como usar a propriedade associativa para realizar a filtragem de uma imagem por um filtro passa-faixa. (Dica: use uma máscara passa-baixas e uma máscara passa-altas).